package com.qolome.knowledge.variable;

import lombok.extern.slf4j.Slf4j;

/**
 * @Description:变量捕获
 * @author 姜锋
 * @date 2019年12月19日 上午8:43:38
 * @version V1.0
 */
@Slf4j
public class VariableCaptureDemo {
	String s1 = "全局变量";
	// 1.匿名内部类型中对与变量的访问

	public void testInnerClass() {
		String s2 = "局部变量";
		new Thread(new Runnable() {
			String s3 = "内部变量";

			@Override
			public void run() {
				// 访问全局变量 this关键字表示当前内部类的对象
				// log.info(this.s1);
				log.info("s1: {}", s1);
				// 局部变量的访问. 不能对局部变量进行数据修改,会认为是final类型
				// s2="123"; 编译就不通过
				log.info("s2: {}", s2);
				log.info("s3: {}", s3);
				// 也可通过this访问
				log.info("this.s3: {}", this.s3);
			}
		}).start();
	}
	public void test() {
		new VariableCaptureDemo().testInnerClass();
	}
}
